﻿using System.Text.Json;

namespace P5_ToItem;

public class TodoItemManager
{
    private const string FilePath="items.json";
    public List<TodoItem?> TodoItems { set; get; } = new List<TodoItem?>();
    
    public TodoItemManager()
    {
        LoadFromFile();
    }
    
    
    //读取json文件
    public void LoadFromFile()
    {
        if (File.Exists(FilePath))
        {
            string json = File.ReadAllText(FilePath);
            TodoItems = JsonSerializer.Deserialize<List<TodoItem>>(json) ?? new List<TodoItem?>();
        }
    }
    //写json文件
    public void SaveToFile()
    {
        string json = JsonSerializer.Serialize(TodoItems);
        File.WriteAllText(FilePath, json);
    }
    //添加备忘
    public void AddTodoItem(string title, string description, bool completed)
    {
        TodoItems.Add(new TodoItem(title, description,completed));
        SaveToFile();
    }
    //标记完成
    public void MarkComplete(string title)
    {
        TodoItem? todoItem = TodoItems.FirstOrDefault(a => a?.Title == title);
        if (todoItem != null)
        {
            todoItem.Completed = true;
            SaveToFile();
        }
    }
    //删除备忘
    public void DeleteItem(string title)
    {
        TodoItem? todoItem = TodoItems.FirstOrDefault(item => item?.Title == title);
        if (todoItem != null)
        {
            TodoItems.Remove(todoItem);
            SaveToFile();
        }
    }
    //查看列表
    public void ShowAllItems()
    {
        foreach (var todoItem in TodoItems)
        {
            Console.WriteLine($"tittle:{todoItem?.Title}  completed:{todoItem?.Completed} description:{todoItem?.Description}");
        }
    }
    
}